#ifndef _MYSQL_H_
#define _MYSQL_H_

#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <mysql/mysql.h>
#include "cJSON.h"

typedef struct
{
    int type;
    int res;
    char account[50];   //用户账号
    char password[50];  //用户密码
}Login;

typedef struct
{
    int id;
    char name[50];                //领取人的姓名
    char contact_way[50];         //联系方式
    char Instrument_number[50];   //仪器编号
    char bor_time[50];            //领取的时间
    char ret_time[50];            //归还的时间
    char state[20];               //设备状态（是否正常）
}Instrument;

typedef struct
{
    int type;
    int res;
    // 环境参数
    float temp;       // 温度
    float humidity;   // 湿度
    float O2;         // 氧气浓度
    float CO2;        // 二氧化碳浓度
    float CH4;        // 甲烷浓度
    float CO;         // 一氧化碳浓度

    // 时间与位置信息
    char time[50];    // 时间
    char pt[50];      // 点位名称

    // 责任人信息
    char principal[50];// 负责人姓名
    char state[50];    // 设备状态（是否正常）
}Info;


typedef struct
{
    char name[50];         //名字
    char gender[50];      //性别
    char age[50];        //年龄
    char telephone[50];  //手机号
    char account[50];   //用户账号
    char password[50];  //用户密码
}Message;

typedef struct Node
{
    Info infor;
    Login pro;
    Instrument data;
    Message message;

    struct Node *next;
}Node;

Node *insert_data(Info infor, Login pro, Instrument data, Message message);
MYSQL *connect_to_mysql();
void insert_login_data(MYSQL *connect, Login pro);
void insert_info_data(MYSQL *connect, Info infor);
void insert_instrument_data(MYSQL *connect, Instrument data);
void insert_message_data(MYSQL *connect, Message message, char *table);
void delete_data_from_table(MYSQL *connect, char *table, char *field, char *value);
void update_table_data(MYSQL *connect, char *table, char *field, char *value, char *where);
cJSON *query_data_as_json(MYSQL *connect, char *table, char *query_condition);
char *json_to_string(cJSON *json);
char *query_data(MYSQL *connect, char *table, char *query_condition) ;

#endif
